1. Field of the Invention
The present invention relates, generally, to the configuration of hardware in storage enclosures, and in particular embodiments, to the abstracted control of storage enclosure hardware using the Small Computer System Interface (SCSI) Enclosure Services (SES) protocol.
2. Description of Related Art
FIG. 1 illustrates an exemplary conventional system environment 100. In FIG. 1, an initiator such as a host computer 102, including an input/output (I/O) controller such as a Host Bus Adapter (HBA) 104, is connected to a storage system 106 via an Ethernet or Local Area Network (LAN) or storage area network (SAN) 108 implementing a protocol such as Fibre Channel (FC). Storage system 106 includes one or more storage controllers such as Redundant Array of Independent Disks (RAID) controllers 112, and mass storage capability such as a RAID 110, which may include multiple storage enclosures referred to as SBODs (Switched Bunch Of Disks) 114, each containing multiple disk drives 132, a crossbar switch 124, a processor 126, and a variety of non-SCSI storage enclosure hardware 128. The crossbar switch 124 provides ports for direct connections to each of the drives 132 within each SBOD 114.
The RAID controllers 112 virtualize the SBODs 114 such that an initiator 102 on a front end 116 of a RAID controller 112 need not be concerned with how the RAID 110 is configured on a back end 118 of the RAID controller 112. For example, the host 102 may send a command 122 to the front end 116 of a RAID controller 112, such as a request to store data. The RAID controller 112 responds to this command 122 by initiating one or more write commands 120 on the back end 118 of the RAID controllers 112 according to a protocol such as a FC Arbitrated Loop (FCAL) protocol, wherein one command is required for each drive in one or more SBODs 114 that will store some of the requested data. Each command in the series of commands must pass serially through each crossbar switch 124 on each SBOD 114, which are daisy-chained together using dedicated FC lines 130, until the crossbar switch connected to the targeted drive is located.
FIG. 2 illustrates another exemplary conventional system environment 200. In FIG. 2, the initiator 202, which includes an I/O controller such as a HBA 204, is connected to a storage system 206 via an Ethernet or LAN or SAN 208 implementing a protocol such as FC. Storage system 206 includes one or more storage controllers such as RAID controllers 212, a root switch 234, and mass storage capability such as a RAID 210, which may include multiple storage enclosures referred to as JBODs (Just a Bunch Of Disks) 214, each containing multiple disk drives 232 connected in a loop. Root switch 234 includes a non-blocking crossbar switch 224, a processor 226, and a variety of non-SCSI storage enclosure hardware 228. The crossbar switch 224 provides ports for direct connections to each of the JBODs 214.
The RAID controllers 212 virtualize the JBODs 214 such that an initiator 202 on a front end 216 of a RAID controller 212 need not be concerned with how the RAID 210 is configured on a back end 218 of the RAID controller 212. For example, the initiator 202 may send a command 222 to the front end 216 of a RAID controller 212, such as a request to store data. The RAID controller 212 responds to this command 222 by initiating one or more write commands 220 on the back end 218 of the RAID controllers 212 according to a protocol such as FCAL, wherein one command is required for each drive in one or more JBODs 114 that will store some of the requested data. Dual FC lines 230 may be provided for each connection (e.g. channel A and B) for redundancy. Each command in the series of commands must pass through crossbar switch 224 in root switch 234, which then makes the proper connection to route the commands directly the JBOD containing the targeted drive. The commands are then routed serially through each of the drives 232 in a loop in the JBOD 214 until the proper drive is located.
The various devices in the SBODs 114 of FIG. 1 or the root switch 234 of FIG. 2 need to be configured, including the non-SCSI storage enclosure hardware. In addition, these devices and hardware may store configuration information, statistics, and other information that may be of use to an end user of the storage system. Therefore, the SBODs 114 in FIG. 1 and the root switch 234 in FIG. 2 may include Ethernet ports (see reference character 136 in FIG. 1 and reference character 236 in FIG. 2) and perhaps RS-232 serial ports (see reference character 138 in FIG. 1 and reference character 238 in FIG. 2) to provide a management interface. However, in either case, an external connector and an external connection are required to configure the elements in the storage systems.
SCSI Enclosure Services (SES) is a protocol that has been developed to enable both SCSI and non-SCSI devices to be configured, monitored and controlled over a FC link. Essentially, SES comprises SCSI commands embedded in the FC protocol. The SES protocol is extensible and flexible to support the configuration and control of many different SCSI devices in an enclosure. Through the use of SES commands, an end user may operate a SES initiator such as a RAID controller or an HBA separate from the RAID controller to configure, monitor and control the devices within the SBODs 114 in FIG. 1 or the root switch 234 in FIG. 2 over the FC connections between the RAID controller and the SBODs or root switch.
FIG. 3 illustrates an exemplary conventional storage system 300 that is configurable using SES commands. In FIG. 3, a Vitesse® VSC120 enclosure management controller 302 including a processor 326 is connected to drives 332 via port bypass circuits (PBCs) 372 in an SBOD implementation 314. Non-SCSI hardware 328 may comprise a number of devices, including, but not limited to, one or more fans or cooling devices 348, power supplies 350, temperature sensors 352, and lights, displays or indicators 354.
To configure the hardware 328, SES commands 356 are sent from a SES initiator such as a RAID controller 312 over the FC connection 330 directly to one of two FC ports 382 on the Vitesse® VSC120 enclosure management controller 302. The FC ports 382 allow the VCS 120 to function as a SES device provided that the appropriate software is loaded. The SES commands 356 are SCSI commands embedded in the FC protocol, and configure, monitor and control the hardware 328 within the SBOD 314. SES protocol code 362 executed by the processor 326 converts the SES commands 356 into signaling that may be sent over pre-defined hardware interface 360 for configuring, monitoring and controlling the non-SCSI hardware 328. However, because the SES protocol code 362 requires special code to configure, monitor and control the non-SCSI hardware 328, the SES protocol code 362 must be modified with specific knowledge of the actual non-SCSI hardware in the storage enclosure and an understanding of SES protocols. No pre-defined template for controlling non-SCSI hardware is provided, other than a very rudimentary set of functions that must be used when writing the special code to control the non-SCSI hardware. In addition, this Vitesse® VSC120 implementation allows no flexibility in the choice of processor, and does not allow for the defining of a new hardware interface if a previously unknown non-SCSI hardware device was inserted into the storage system.
Therefore, there is a need to abstract the SES protocol code from the control, monitoring and configuration of the non-SCSI storage enclosure hardware, to allow a choice of processor, and to enable the defining of new hardware interfaces.